import java.util.Arrays;

public class Test1 {
    //给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。
    public static void main(String[] args) {
        //方法1
//        int[] num = {1,2,3,4,5,6,7};
//        int len = num.length;
//        int[] num1 = new int[len];
//        int k = 3;
//        for (int i = 0; i < num.length; i++) {
//                num1[(i+k)%num.length] = num[i];
//        }
        //方法2
        int[] num = {1,2,3,4,5,6,7};
        rotate(num,3);
        System.out.println(Arrays.toString(num));
    }
    public static void rotate(int[] nums, int k) {
        int len = nums.length;
        int[] nums1 = new int[k];
        if (k > len) {
            k = k % len;
        }
        if (k != len) {
            for (int i = 0; i < k; i++) {
                nums1[i] = nums[len + i - k];
            }
            for (int j = len - k - 1; j >= 0; j--) {
                nums[j + k] = nums[j];
            }
            for (int m = 0; m < k; m++) {
                nums[m] = nums1[m];
            }
        }
    }
}
